package com.atgm.mall.gmmailproduct.service;

import com.atgm.common.utils.PageUtils;
import com.atgm.mall.gmmailproduct.entity.GameGoodsEntity;
import com.atgm.mall.gmmailproduct.vo.req.GameGoodsReqVo;
import com.atgm.mall.gmmailproduct.vo.resp.GameGoodsDetailVo;
import com.atgm.mall.gmmailproduct.vo.resp.GamePriceRespVo;
import com.atgm.mall.gmmailproduct.vo.resp.OrderGameRespVo;
import com.baomidou.mybatisplus.extension.service.IService;

import java.util.List;
import java.util.Map;

public interface GameGoodsService extends IService<GameGoodsEntity> {

    List<GameGoodsEntity> getGoodsInfoByIds(List<Long> goodsIds);

    PageUtils getGoodsInfo(Map<String, Object> params);

    /**
     * 条件获取游戏信息
     * @param params
     * @return
     */
    PageUtils queryGoodsInfoByCond(Map<String, Object> params);

    GameGoodsDetailVo queryGoodsInfoBYId(Long id);

    String saveGameGoodsInfo(GameGoodsReqVo gameGoodsReqVo);

    /**
     * 获取下架状态中游戏
     * @param params
     * @return
     */
    PageUtils queryOffShelfGames(Map<String, Object> params);

    /**
     * 修改游戏上下架状态
     * @param gameGoodsReqVo
     */
    void updateGameShelf(GameGoodsReqVo gameGoodsReqVo);

    /**
     * 游戏名称列表
     * @param name
     * @return
     */
    List<String> queryGameName(String name);

    /**
     * 获取游戏的简单信息
     * @param id
     * @return
     */
    GameGoodsEntity querySimpleInfoById(Long id);

    /**
     * 获取游戏商品的价格信息
     * @param gameIds
     * @return
     */
    List<GamePriceRespVo> queryGamePrice(List<Long> gameIds);

    /**
     * 订单页面游戏信息
     * @param gameIds
     * @return
     */
    List<OrderGameRespVo> queryOrderGameInfo(List<Long> gameIds);
}
